package com.pactera.asmp.server.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import com.pactera.asmp.server.entity.ProductionLine;
import com.pactera.asmp.server.entity.ProductionLineSearchDTO;
import com.pactera.asmp.server.entity.ProjectProductionConfig;
import com.pactera.asmp.server.entity.ResponseResult;
import com.pactera.asmp.server.pojo.ProductionLineBuildNoticeInfo;
import com.pactera.asmp.server.pojo.ProductionLineInfo;

public interface IProductionLineService {

    List<ProductionLine> getProductionLineListByProjectId(Integer projectId);

    List<ProductionLineInfo> getProductionLineList(ProductionLineSearchDTO productionLineSearchDTO);

    ResponseResult batchProductionLine(ProductionLineInfo productionLineInfo);

    ResponseResult updateProductionLine(ProductionLine productionLine);

    ResponseResult updateProductionLineConfig(ProjectProductionConfig projectProductionConfig);

    ResponseResult<Boolean> validateProductionLineConfig(ProjectProductionConfig projectProductionConfig);

    ResponseResult noticeBuildSuccess(HttpServletRequest request,
            @Valid ProductionLineBuildNoticeInfo productionLineBuildNoticeInfo);

    ResponseResult deleteProductionLine(Integer id);

    void deleteProductionLineByProjectIds(List<Integer> projectIds);

    ResponseResult<Map<String, Map<String, String>>> getProductAndProject(ProjectProductionConfig projectProductionConfig);

}
